package persistence;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import model.*;
public class PersistenciaDestino {
	private static PersistenciaDestino instancia;
	
	public static PersistenciaDestino getInstancia()
	{
		if (instancia== null)
			instancia =new PersistenciaDestino();
		return instancia;
	}
	
	public PersistenciaDestino() {
		// TODO Auto-generated constructor stub
	}
	
	public Destino getDestino (int  id)
	{
		Destino d = null; 
		Connection con = PoolConexiones.getPoolConexiones().getConnection();
		
		try
		{
			String senten = "SELECT id, codigo, nombre, activo, pais from Destino where id = ?" ;
			PreparedStatement ps = null;
			ps = con.prepareStatement(senten);
			ps.setInt(1,id);
			ResultSet result = ps.executeQuery();
			while (result.next())
			{						
				d = new Destino(
						result.getInt("id")
						, result.getString("codigo")
						, result.getString("nombre")
						, result.getBoolean("activo")
						, result.getString("pais")
						);								
			}
			
			PoolConexiones.getPoolConexiones().realeaseConnection(con);
			return d;
		}
	      catch( SQLException e ) 
	      {
				System.out.println("Error al consultar Destino: " + e.getMessage());
				e.printStackTrace();
				PoolConexiones.getPoolConexiones().realeaseConnection(con);
	      }
	      return d;
	}
	public ArrayList<Destino> getDestinos ()
	{
		ArrayList<Destino> destinos = new ArrayList<Destino>();
		Destino d = null; 
		Connection con = PoolConexiones.getPoolConexiones().getConnection();
		
		try
		{
			String senten = "SELECT id, codigo, nombre, activo, pais from Destino" ;
			PreparedStatement ps = null;
			ps = con.prepareStatement(senten);			
			ResultSet result = ps.executeQuery();
			while (result.next())
			{						
				d = new Destino(
						result.getInt("id")
						, result.getString("codigo")
						, result.getString("nombre")
						, result.getBoolean("activo")
						, result.getString("pais")
						);
				destinos.add(d);
			}
			
			PoolConexiones.getPoolConexiones().realeaseConnection(con);
			return destinos;
		}
	      catch( SQLException e ) 
	      {
				System.out.println("Error al consultar Destino: " + e.getMessage());
				e.printStackTrace();
				PoolConexiones.getPoolConexiones().realeaseConnection(con);
	      }
	      return destinos;
	}	
	public Destino guardarDestino (Destino d)
	{
	      return d;
	}
	public void eliminarDestino (Destino d)
	{	      
	}	
}
